import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import axios from 'axios'
import { Base64 } from 'js-base64'
import './utils/http'
import './utils/request'
Vue.use(Base64)
    // import VueCookies from 'vue-cookies'
    // axios.defaults.withCredentials = true //让ajax携带cookie
    // Vue.use(VueCookies)
Vue.use(ElementUI);
Vue.prototype.$http = axios
    // Vue.config.productionTip = false

// Vue.prototype.asmfs = asmfs
// Vue.prototype.optData = optData
// Vue.prototype.$getCode = (password) => {
//     let encrypt = new JSEncrypt()
//     encrypt.setPublicKey(optData.PublicKey)
//     let data = encrypt.encrypt(password);
//     return data
// }

// 添加请求拦截器
// 拦截器的第一部分，第二部分在router index.js里面



export default {
    name: 'axios3-4',
    created() {
        axios.interceptors.request.use(config => {
            return config
        }, err => {
            return Promise.reject(err)
        })
        axios.interceptors.response.use(res => {
            return res
        }, err => {
            return Promise.reject(err)
        })
        axios.get('/data.json').then((res) => {
                this.$message.error(res);

            }).catch(err => {
                this.$message.error(err);
            })
            // 例子：实际开发过程中，一般添加统一错误处理
        let instance = axios.create({})
        instance.interceptors.request(config => {
            return config
        }, err => {
            // 请求错误 一般http状态码以4开头，常见：401超时，404 not found
            $('#modal').show()
            setTimeout(() => {
                $('#modal').hide()
            }, 2000)
            return Promise.reject(err)
        })
        instance.interceptors.response.use(res => {
            return res
        }, err => {
            // 响应错误处理 一般http状态码以5开头，500 系统错误，502, 系统重启
            $('#modal').show()
            setTimeout(() => {
                $('#modal').hide()
            }, 2000)
            return Promise.reject(err)
        })
        instance.get('/data.json').then(res => {
            this.$message.error(res);
            console.log(11111, '22222222222');

        }).catch(err => {
            this.$message.error(err);
        })
    },
}

new Vue({
    router,
    store,
    Base64,
    render: h => h(App)
}).$mount('#app')